Public Class Diversos


    Shared Function ConversaoTipos(ByVal objeto As Object, ByVal TipoValor As eTipoValor)

        Select Case TipoValor

            Case eTipoValor.Numerico

                If Not IsNumeric(objeto) Then
                    Return 0
                Else
                    Return CDbl(objeto)
                End If

            Case eTipoValor.Inteiro

                If Not IsNumeric(objeto) Then
                    Return 0
                Else
                    Return CInt(objeto)
                End If


            Case eTipoValor.Texto

                Return CStr(objeto)

            Case eTipoValor.Data

                If Not IsDate(objeto) Then
                    Return Nothing
                Else
                    Return CDate(objeto)
                End If


            Case eTipoValor.Logico

                Try
                    Return CBool(objeto)
                Catch
                    Return False
                End Try

            Case Else

                Return CStr(objeto)

        End Select

    End Function

    Shared Function FormatarValor(ByVal objetoValor As Object, ByVal strFormato As String) As Object

        If strFormato <> String.Empty Then
            If objetoValor.GetType.ToString Like "System.Dec*" Or objetoValor.GetType.ToString Like "System.Doub*" Then
                Return CDbl(objetoValor).ToString(strFormato, System.Globalization.CultureInfo.CurrentCulture)
            ElseIf objetoValor.GetType.ToString Like "System.Date*" Then
                Return CDate(objetoValor).ToString(strFormato, System.Globalization.CultureInfo.CurrentCulture)
            Else
                Return objetoValor.ToString(strFormato)
            End If

        Else
            Return objetoValor
        End If
    End Function
End Class
